import Vue from 'vue'
import router from '../router'

/**
 * 将数据保存到缓存
 * @param key
 * @param value
 */
export function setStorageSync (key, value) {
  Vue.cookie.set(key, value, { expires: 7 })
}

/**
 * 从缓存里获取数据
 * @param key
 * @return string
 */
export function getStorageSync (key) {
  return Vue.cookie.get(key)
}

/**
 * 将数据保存到临时缓存
 * @param key
 * @param value
 */
export function setObjToStorageTemp (key, value) {
  // eslint-disable-next-line no-undef
  sessionStorage.setItem(key, JSON.stringify(value))
}

/**
 * 从临时缓存里获取数据
 * @param key
 * @returns {*}
 */
export function getObjFromStorageTemp (key) {
  // eslint-disable-next-line no-undef
  const content = sessionStorage.getItem(key)
  if (isNull(content)) {
    return null
  } else {
    // eslint-disable-next-line no-undef
    return JSON.parse(sessionStorage.getItem(key))
  }
}

/**
 * 判断是否为空
 * @param data
 * @returns {boolean}
 */
export function isNull (data) {
  if (data === undefined) {
    return true
  } else if (data === null) {
    return true
  } else if (typeof data === 'string' && (data.length === 0 || data === '' || data === 'undefined' || data === 'null')) {
    return true
  } else if ((data instanceof Array) && data.length === 0) {
    return true
  }
  return false
}

/**
 * 判断不为空
 * @param data
 * @returns {boolean}
 */
export function isNotNull (data) {
  return !isNull(data)
}

/**
 * 页面跳转
 * @param path
 * @param isRepalce
 */
export function goToPage (path, isRepalce) {
  if (isRepalce) {
    router.replace(path)
  } else {
    router.push(path)
  }
}

/**
 * 获取当前vue页面名称
 * @param path
 * @param isRepalce
 */
export function getCurrentPage () {
  // eslint-disable-next-line no-undef
  let hash = location.hash.replace('#/', '')
  if (hash.indexOf('?') > 0) {
    hash = hash.substring(0, hash.indexOf('?'))
  }
  return hash
}

/**
 * 生成从[min,max]的随机数
 * @param min
 * @param max
 * @returns {number}
 */
// eslint-disable-next-line no-unused-vars
function randomNum (min, max) {
  return Math.round(Math.random() * (max - min) + min)
}

/**
 * 获取uuid
 */
export function getUUID () {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
    return (c === 'x' ? (Math.random() * 16 | 0) : ('r&0x3' | '0x8')).toString(16)
  })
}

/**
 * 日期格式处理
 * 获取当前时间
 */
export function newDate () {
  var myDate = new Date()
  myDate.getYear() // 获取当前年份(2位)
  var y = myDate.getFullYear() // 获取完整的年份(4位,1970-????)
  var M = myDate.getMonth() + 1 // 获取当前月份(0-11,0代表1月)         // 所以获取当前月份是myDate.getMonth()+1;
  var d = myDate.getDate() // 获取当前日(1-31)
  myDate.getDay() // 获取当前星期X(0-6,0代表星期天)
  myDate.getTime() // 获取当前时间(从1970.1.1开始的毫秒数)
  var h = myDate.getHours() // 获取当前小时数(0-23)
  var m = myDate.getMinutes() // 获取当前分钟数(0-59)
  var s = myDate.getSeconds() // 获取当前秒数(0-59)
  myDate.getMilliseconds() // 获取当前毫秒数(0-999)
  myDate.toLocaleDateString() // 获取当前日期
  myDate.toLocaleString() // 获取日期与时间
  return y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s
}
